package com.zkthink.ceres.common.event;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * Created by kellen on 2020/7/18.
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class OrderPaidEvent<E> implements Serializable {

  private String tenantCode;

  /**
   * 店铺id
   */
  private Long storeId;

  /**
   * 店铺名称
   */
  private String storeName;

  /**
   * 会员id
   */
  private Long mid;

  /**
   * 父订单主键id
   */
  private Long parentId;

  /**
   * 父订单编号
   */
  private String parentCode;

  /**
   * 订单编号
   */
  private String orderCode;

  /**
   * 订单状态：1-待付款 2-待发货 3-待收货 4-已完成 5-已取消
   */
  private Integer orderStatus;

  /**
   * 支付状态：1-已支付 0-未支付
   */
  private Integer payStatus;

  /**
   * 下单账户
   */
  private String memberAccount;


  /**
   * 收货人名称
   */
  private String recName;

  /**
   * 收货人电话
   */
  private String recMobile;

  /**
   * 运费
   */
  private Long postFee;

  /**
   * 订单金额
   */
  private Long orderSum;

  /**
   * 订单消费金额
   */
  private Long discountAmount;

  /**
   * 支付金额
   */
  private Long paySum;


  /**
   * 下单时的备注
   */
  private String notes;

  /**
   * 预支付id
   */
  private String prepayId;

  /**
   * 付款时间
   */
  private LocalDateTime payTime;

  /**
   * 支付方式 1-微信支付 2-支付宝支付
   */
  private Integer payChannel;

  /**
   * 支付单号
   */
  private String payNum;

  /**
   * 营销活动id
   */
  private Long promotionId;

  /**
   * 优惠券id
   */
  private Long couponId;

  /**
   * 商品数量
   */
  private Integer productCount;

  /**
   * 子订单相关列表
   */
  private List<E> childOrderDTOList;
}
